• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp13
r3wp284
total:297

results window for this page: [start: 101 end: 200]

world-name: r3wp

Group: All ... except covered in other channels [web-public]
Micha:
20-Feb-2005
plis sample  open , save file dialog ?
Reichart:
8-May-2009
I hold patents in many fields, and around the world.  Costs are tricky. 
 In general, a patent is not worth it in the big scheme of things. 
 You best have something amazing.  Today, coming up with a patent 
in compression  would not really matter, since it would just annoy 
people, i.e. the Unisys patent inside GIF.


Let's say you came up with a way to make something 50% smaller even, 
but if you patent it, and no one will touch it, does it really matter? 
 And then, WHO would touch it, knowing that it is not open?  Is it 
really worth it.  Keep in mind, I made a lot of money specifically 
selling compression technology.  If you did much better, like 70% 
over the next best open system, then it might become worth something.


You have to weigh the value.  But figure to file outside of America 
will cost half again what it cost in America.  That can range from 
you doing it your self (a few grand all said, to an average of $8K 
- $12K ).


I personally have never paid less than $20K just in America. But 
my patents tend to be well researched (better than most people do 
for their patents).

The patent "search" is the expensive part.
Group: Ann-Reply ... Reply to Announce group [web-public]
Brock:
10-Aug-2008
Chris, I get an error...
connecting to: chart.apis.google.com

** Access Error: Cannot open /c/documents and settings/brock/application 
data/rebol/public/chart.apis.google.com/c
hart?cht=ls&chs=150x40&...
** Where: read-thru
** Near: write/binary file data
if all
AdrianS:
24-Aug-2010
not quite - the correct path is still prefixed with the directory 
of the rebol exe

** Access Error: Cannot open /C/dev/r2/C:\Windows/system32/Kernel32.dll
** Near: k32-lib: load/library join to-file get-env
Group: !AltME ... Discussion about AltME [web-public]
ManuM:
20-Feb-2009
Vladimir: CTRL+C works for me ( Kubuntu 8.10 ), but I only can paste 
( CTRL+V ) at any area of Altme ( New message area, Your current 
status area, Search area, ... ). If I want to copy one url to paste 
at other program, I export messages ( top-right button ) and save 
to a file ( I think html file is better ). Then I can open the file 
and copy the url
amacleod:
16-Jul-2009
I hate Vista....

Anyone else have this prob:


Using altme to share many files. I see them in altme but they do 
not exist in the proper altme file folder.


From what I've gathered Vista with UAC enabled (default) does not 
allow programs that do not comply with their new security API to 
write to certain folders such as "program files" whrere Altme is 
installed.


So if I try to open it with notepad, notpad can not see it as it 
does not really exist in that folder that altme tells notpads that 
its in. Vista re-routes altme to the "safe" location without altme 
knowing this.

Anyone have a work around...


I could turn off UAC but that is suppose to be bad (security reasons).


I guess I could move altme to a non secure folder (not sure what 
that would be? I think the Desktop has the same issues...
maybe just C:??
Anton:
3-Jun-2010
amacleod, I think you saved the file after loading it with a webbrowser 
or something.
Do this instead:

 load-thru/update url: http://membres.multimania.fr/didec/rebol/altme-chat-reader.r
	path-thru url
and open that file in your editor.
Group: RAMBO ... The REBOL bug and enhancement database [web-public]
sqlab:
1-Dec-2006
I have a slightly modified help, that does not evaluate functions 
in objects and ports and that also dumps ports like objects.
>> a: open http://www.rebol.com
connecting to: www.rebol.com
>> help a
A is a port of value:
   scheme          word!     HTTP
   host            string!   "www.rebol.com"
   port-id         integer!  80
   user            none!     none
   pass            none!     none
   target          none!     none
   path            none!     none
   proxy           object!   [host port-id user pass type bypass]
   access          none!     none
   allow           none!     none
   buffer-size     none!     none
   limit           none!     none

   handler         object!   [port-flags open-check close-check write-check 
   ini...
   status          word!     file
   size            integer!  0
   date            date!     6-Nov-2006/21:26:44
   url             string!   "http://www.rebol.com/"

   sub-port        port!     make port! [ scheme: 'tcp host: "www.rebol.com" 
   po...
   locals          object!   [list headers querying]

   state           object!   [flags misc tail num with custom index 
   func fpos i...
   timeout         integer!  30
   local-ip        none!     none
   local-service   none!     none
   remote-service  none!     none
   last-remote-service none! none
   direction       none!     none
   key             none!     none
   strength        none!     none
   algorithm       none!     none
   block-chaining  none!     none
   init-vector     none!     none
   padding         none!     none
   async-modes     none!     none
   remote-ip       none!     none
   local-port      none!     none
   remote-port     none!     none
   backlog         none!     none
   device          none!     none
   speed           none!     none
   data-bits       none!     none
   parity          none!     none
   stop-bits       none!     none
   rts-cts         logic!    true
   user-data       none!     none
   awake           none!     none

Is there interest in including in the new release?
Dockimbel:
30-May-2007
>> probe info? %script.r/
make object! [
    size: 3405
    date: 12-Sep-2000/21:40:20+2:00
    type: 'file
]

>> read %script.r/
** Access Error: Cannot open /C/Dev/REBOL/script.r/
** Near: read %script.r/

Shoudn't INFO? return none (or an error) in this case ?
Dockimbel:
4-Jun-2007
specs: info? a-file
if specs/type = 'file [
	probe read a-file
]

** Access Error: Cannot open /C/Dev/REBOL/script.r/
** Near: read a-file
Group: Core ... Discuss core issues [web-public]
Rebolek:
12-Dec-2005
Because I'm writing scripts on more than one computer I need to sync 
files somehow. I can use flashdisk for synchronization, but USB is 
not always available or I forget my flashdisk at home, so it's not 
always the right option.

Or I can use ftp to upload and download files. But at the end I've 
got lots of different directories with different versions, because 
I have no intelligent file structure.

I was inspired by Google filesystems for win and lin so I decided 
to use some freemail (gmail preferably) for my scripts maintaing. 
Unfortunatly, Gmail needs some authentication, SSL or what and SSL 
under Rebol needs Command and Command needs 350$ to buy.

So I found another freemail provider that offers both non-authenticated 
SMPT and POP and therefore is OK for REBOL (btw. remeber the old 
REBOL example? send [luke-:-rebol-:-com] read http://www.rebol.com? Hard 
to do with all the authetications required today.) and I started 
coding.

The result is a small application called %rspace.r that can upload 
file to repository, download newest version from repository, or you 
can get list of all files in repository and finally, if you're happy 
with your script, you can publish it on www/ftp. All this with documentation 
in less than 6kB.

All you need is REBOL and mail account cappable of SMTP/POP without 
authentication. It's good to have an FTP account for publishing files 
but that's not required. If you do not have an mail account, I've 
set up one on seznam.cz, user 'rebolspace' and pass 'spacerebol' 
for testing this application (it's built in, so you can start testing 
right after download).

Remember, it's just alpha, does not have many features, but it works, 
I can write something here, update it there and have all the versions 
accesible from everywhere. It's written for REBOL scripts so with 
big projects it's going to be very slow and unusable, but for small 
project (and most REBOL scripts are really small) it's probably good.

So download it form http://krutek.info/rebol/rspace.r(stable) or 
http://rebolspace.sweb.cz/rspace.r(latest published version). 

WARNING: because [rebolspace-:-seznam-:-cz] is open account it won't be 
wise to use it ordinarily. Please, if you like it, set up your own 
account and use it instead of built-in one.
And remember: all suggestions and fixes are welcome.
Anton:
12-Apr-2006
I am trying right now to write a file to an FTP server. What I would 
like to do is:
- open the port 
- try to write the file
- if that fails, create the parent directory if necessary
- try to write the file again
- close the port
Anton:
16-May-2006
port: open/direct/skip url size ; resume position <- this can fail 
when file is complete already
Rebolek:
19-May-2006
I though I've got it working but it was a mistake. I'm still not 
able to use /skip refinement on files succesfully. Does anybody now, 
if it's possible to OPEN or READ file from some offset? I saw some 
bug filled in RAMBO two years ago :(((
Volker:
19-May-2006
p: open file
p: skip p 123
data: copy p
IIRC
Rebolek:
24-May-2006
Why I am not able to OPEN file which I can READ ?
Graham:
24-May-2006
'read must 'open a file
Oldes:
31-May-2006
Anton, yout ftp patch was not working, but I solved the issue with 
missing directories using this code:
while [

 error? set/any 'err try [trgp: open/direct/new/write rejoin [ftp-url 
 trg-dir trg-file]]
][
	err: disarm err
	if all [
		err/code = 800
		parse err/arg1 [thru "tcp 550 " copy missingdir to ":" to end]
	][
		print ["Making directory:" join ftp-url missingdir]
		if error? try [make-dir join ftp-url missingdir][
			trgp: none
			break
		]
	]
]
Will:
29-Aug-2006
Any idea what can cause this or a good idea how to find the bug?
>> read %/

Trace:  read (word)

Trace:  %/ (file)

** Access Error: Trace:  "Cannot open" (string)

Trace:  :arg1 (get-word)
Cannot open /

** Where: boot

** Near: read %/
PeterWood:
30-Aug-2006
The Core Manual  ( http://www.rebol.com/docs/core23/rebolcore-17.html
)does limit the possible causes a little:

6.3.1 cannot-open


A file could not be accessed. This could be a local or network file. 
Most common reason for this error is a nonexistent directory.
Will:
31-Aug-2006
Thanks to all for bringing some light, it seams actually the problem 
IS related to file handle limit.
Checked with (suggested by Jaime):
sudo fs_usage -w -f filesys <process id>|grep 'open\|close'
and the number of open and close correspond.
Peter suggested "fstat -p <process id>", fortunately fstat isn't

there in 10.4 Tiger, so I was looking for a similar tool and found
lsof

 for which I did not find the flag to filter for only uniserve process

and there I saw something else was actually consuming file handles..
Sorry Carl to have thought about a rebol error ;-))
Uniserve is rock solid and blazing fast btw.
Henrik:
13-Oct-2006
it wants to find the file in my local cache before the remote one 
and crashes:

>> do http://www.fm.tul.cz/~ladislav/rebol/include.r
connecting to: www.fm.tul.cz
Script: "Include" (5-Jan-2006/14:31:42+1:00)
>> append include-path http://www.fm.tul.cz/~ladislav/rebol/
== [%. %/Volumes/c/rebol/ http://www.fm.tul.cz/~ladislav/rebol/]
>> include %spider.r
connecting to: www.fm.tul.cz
** Access Error: Cannot open /Volumes/c/rebol/spider.r
** Where: include-script
** Near: found: load/all target 
if header
>>

Sorry, if I'm being a little difficult :-)
Jerry:
20-Oct-2006
I would like to know ...


1. How to use the OPEN function with the /SEEK refinement to replace 
the 1,000,000th byte with the 2,000,000th byte in a file.


2. How to truncate a huge file to its helf size, and keep the head 
helf only. 

Thanks.
PeterWood:
20-Oct-2006
My answer to your first question (from reading http://www.rebol.net/article/0199.html
)


>> write %testdata "123456789A123456789B"    ;; A simple test file

>> fp: open/seek %testdata                                   ;; Open 
the file in seek mode

>> fp: skip fp 19                                                
      ;; Move to 20th character

>> newval: copy fp                                               
  ;; Copy the 20th character
== "B"

>> fp: head fp                                                   
       ;; Position at start of file

>> change at fp 10 newval                                      ;; 
Overwrite 10th character

>> copy head fp                                                  
     ;; Check change made
== "123456789B123456789B"
>> close fp
>> fp: open %testdata

>> copy fp                                                       
             ;; Check file was changed
== "123456789B123456789B"
Oldes:
22-Jan-2007
If you backup so many files, you should open just one connection 
and comunicate with the server. Not to open and close connections 
for every file.
Louis:
7-Jun-2007
Good progress, then stuck again. I can get one file transferred, 
but I don't know how to transfer the following files. This is the 
server (put it in an empty folder): 

rebol []

print ["This program RECEIVES files sent by send-files-tcp." newline]
port-num: request-text/title/default "Port Number: " "2006"
url: to-url rejoin ["tcp://:" port-num]
received-file: copy first open/binary url
write %file-names decompress received-file
files: load %file-names
foreach file files [

    received-file: copy url ;<======== HOW DO I FEED IN THE NEXT FILE?
    write/binary file received-file
    print ["Successfully received file: " file]
]

ask "The files transfer is complete. Press <Enter> to close."
Louis:
7-Jun-2007
This is the client; put it in the folder containing the files you 
want to send.

rebol []
ip: request-text/title/default "IP Address: " "localhost"
port-num: request-text/title/default "Port Number: " "2006"
url: to-url rejoin ["tcp://" ip ":" port-num]
system/options/binary-base: 64  ; best binary encoding


print ["This program SENDS all files in its folder to receive-files-tcp." 
newline]
print "NOTE: receive-files-tcp must be running on the remote"
print ["computer before starting this program." newline]

files: read %. ; Note that 'files is a block of file names.
save %file-names files
server: open url

insert server compress as-binary read/binary %file-names ;send file 
names
file-block: []
foreach file files [
    if not find file "/" [insert file-block file] ;remove folders
]
files: file-block
foreach file files [
    insert server compress as-binary read/binary file
    print ["Successfully sent file: " file]
]
close server

ask [newline "The files transfer is complete. Press <Enter> to close."]
Geomol:
7-Jun-2007
Louis, I think, your problem is, that you only operate with one port. 
When you define a listen port in REBOL, you receive a port from that. 
This new port can be used to receive the file. Something like:

listen-port: open/lines join tcp://: port-num
wait listen-port
talk-port: first listen-port
file: first talk-port
close talk-port
wait listen-port
...


(I haven't tested this code. It's free from a similar program, I 
made in the past.)
Geomol:
7-Jun-2007
server example:

listen-port: open/lines tcp://:8080
wait listen-port
p: first listen-port
file: load first p
close p
write/binary %file.r debase first file
close listen-port

client example:

p: open/lines tcp://127.0.0.1:8080
insert p remold [enbase read/binary %hokus-pokus.r]
close p
Louis:
31-Aug-2007
From section 11.12 of the Core users manual:

inp: open/binary/direct ftp://ftp.site.com/big-file.bmp
out: open/binary/new/direct %big-file.bmp
buf-size: 200000
buffer: make binary! buf-size + 2

while [not zero? size: read-io inp buffer buf-size][

    write-io out buffer size  ;<================<<< Where did size come 
    from; this is incorrect, no? 
    total: total + size
    print ["transferred:" total]
]
Steeve:
25-Oct-2007
it's just a proof of concept, it's not usable as-is for an open/seek 
 file mode
Steeve:
25-Oct-2007
REBOL []

parse-async: func [
        file rules
        /local port buffer offset getf seek meta & && result
][
        port: open/seek/binary  file
        buffer: clear #{}
        offset: 1
        getf: func [len][
                offset: offset - length? buffer
                clear buffer 
                append buffer copy/part at port offset len 
                offset: offset + len 
        ]
        seek: [(offset: offset + 1)]
        ..: func [blk] [change/part & compose/deep blk && ]
        parse rules meta: [
                some [

                        &: binary! &&: (.. [buffer: (to-paren reduce ['getf length? &/1]) 
                        (&/1)]) :& 3 skip 
                        | &: 'skip &&: (.. [seek]) :& skip
                        | &: 'get word! integer! &&:

                                (.. [buffer: (to-paren compose/deep [getf (&/3) set [(&/2)] to integer! 
                                as-binary cp buffer]) to end]) :& 4 skip

                        | &: string! &&: (.. [(as-binary &/1)]) :& 
                        | 'end 'skip 
                        | into meta
                        | skip
                ]
        ]
        result: parse/all buffer rules
        close port
        result
 ]
 
if parse-async %15.jpg [
        #{FFD8}   ; jpeg Header
        [
                 #{FFE0}                        ;JFIF header

                        get len 2               ;get data length  for the current header 
                        (2 bytes)

                         "JFIF"                 ;yeah it's a JFIF (confirmation)

                        (len: len - 6) len skip ;skip data (len) times
                        some [

                                 #{FFC0}        ;good ! i found the length properties

                                        2 skip  ; skip length of this header

                                        skip    ; filler ??? always = #{08}
                                        get height 2
                                        get width 2
                                        break   ; finished

                                | #{FF} skip    ;skip this header
                                        get len 2 
                                        (len: len - 2) len skip
                                | 

                                        [end skip]     ;error format
                        ]

                | #{FFE1}                       ;EXIF header

                        get len 2               ;get length of a header
                                                ;... to do
                        [end skip]
        ]
        to end
][
   ?? height
   ?? width
]        
halt
Oldes:
27-Oct-2007
get-JPG-size: func[
	"Returns size on JPG image or none on invalid files"
	jpgfile [file! url!] "File to examine"
	/local stream byte1 byte2][
	stream: open/read/binary/direct jpgfile
	;seek to jpg start
	until [
		all [
			255 = first stream
			216 = first stream
		]
	]
	while[any[byte1: first stream]] [
		if 255 = byte1 [
			either 192 = byte2: first stream [
				copy/part stream 3
				height: to-integer copy/part stream 2
				width:  to-integer copy/part stream 2
				close stream
				return as-pair width height
			][
				copy/part stream ((to integer! copy/part stream 2) - 2)
			]
		]
	]
	close stream
	none
]
Oldes:
27-Oct-2007
get-JPG-size: func[
	"Returns size of JPG image or none on invalid files"
	jpgfile [file! url!] "File to examine"
	/local stream byte
][
	stream: open/read/binary/direct jpgfile
	;seek to jpg image start
	until [
		any [
			all [
				255 = first stream
				216 = byte: first stream
			]
			none? byte
		]
	]

 unless byte [close stream return none] ;no Start Of Image marker 
 found

	while[any[byte: first stream]] [
		if 255 = byte [
			either 192 = byte: first stream [
				copy/part stream 3
				height: to-integer copy/part stream 2
				width:  to-integer copy/part stream 2
				close stream
				return as-pair width height
			][
				copy/part stream ((to integer! copy/part stream 2) - 2)
			]
		]
	]
	close stream
	none
]
Oldes:
27-Oct-2007
get-JPG-size: func[
	"Returns size of JPG image or none on invalid files"
	jpgfile [file! url!] "File to examine"
	/local stream bytes height width
][
	stream: open/read/binary/seek jpgfile
	;seek to jpg image start
	while [#{FFD8} <> copy/part stream 2][
		if tail? stream: skip stream 2 [
			;no Start Of Image marker found
			close stream return none
		]
	]
	stream: skip stream 2
	while[not tail? stream][
		bytes:  copy/part stream 2
		stream: skip stream 2
		if 255 = bytes/1 [
			either 192 = bytes/2 [
				stream: skip stream 3
				height: to-integer copy/part stream 2
				width:  to-integer copy/part skip stream 2 2
				close stream
				return as-pair width height
			][
				stream: skip stream ((to integer! copy/part stream 2) - 2)
			]
		]
	]
	close stream
	none
]
Rod:
5-Dec-2007
Any binary parse wizards ever tried to tackle the on disk file format 
that postgresql uses to store row data?


I'm looking through the docs trying to get a handle on how tough 
it is.

http://www.postgresql.org/docs/8.1/static/storage.html
and

http://www.postgresql.org/docs/8.1/static/storage-page-layout.html


give a fairly detailed starting place, plus the source of course 
but my C is so rusty I think reviewing the raw data is going to be 
easier.


We are trying to recover some data that was deleted (marked for) 
by accident.  We basically need to find the serial key value and 
associate it with a text value for each row so we can rebuild the 
table and not lose the relationships that key off that serial numeric 
value in other tables.


There are some good examples of binary parsing in the rebol.org script 
library so I know rebol can help write out a text version of the 
two values if we can get a handle on the structures involved.


I'm open to suggestions or advice, this is not critical but would 
be a nice win to recover the key data.
Group: View ... discuss view related issues [web-public]
james_nak:
4-Mar-2005
Hello, Long time no talk. Is there a way to tell the request-file 
to open up in a specific directory?
Volker:
14-Apr-2005
can you open a real file with the requester?
Anton:
14-Apr-2005
Here's the problem, surely:
	button "open" [save-file/? ta sr open-file refresh]
Volker:
14-Apr-2005
open tries to save the last file. it thinks it is modified, instead 
its missing. but text <> attempt[read file], so..
Josh:
14-Dec-2005
Do you think editor should always start up with the last open file 
 (i.e. hit ctrl-E on desktop, open a file, close the editor, then 
hit ctrl-E again)
Josh:
14-Dec-2005
Why do you think so?   My natural reaction is to expect something 
blank, or at least not have to close a file that I don't want open. 
  While you don't "close" a document in editor, I have to sit and 
think, "is this something that I want to be open right now or not?" 
   I find it disruptive from a UI standpoint
Ingo:
5-Apr-2006
I have set my 'view (1.3.2.3.1 5-Dec-2005 pro) to not open the desktop 
on startup, now I start it from a windows link like this:

 C:\Programme\Rebol\View\rebol.exe -s "C:\Dokumente und Einstellungen\ingo\Anwendungsdaten\rebol\start-desktop.r"
(You'll imagine, what the script does ;-)

Now, if I click on a rebol file which accesses a dll I get a security 
question whethter I really want to allow access to the dll. shouldn't 
this be allowed with the -s switch?
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
PatrickP61:
19-Jul-2007
Getting better, but still no cigar.


Here is my test code for Mold-CSV function in CSV.r script:  ( I 
hope this formats correctly on Altme)

In-block:	[					; (want in csv file)	; (want in excel) 
["Col A1"		"Col B1"		]	; Col A1,Col B1	; Col A1	Col B1
[2			3			]	; 2,3			;      2	     3
["'3"			"'4"			]	; '3,'4			; '3		'4
["4a"			"4b"			]	; 4a,4b			; 4a		4b

["^"5a^"^"^"^""		"^"^"^"5b^"^""		]	; "5a""""","""5b"""	; 5a""		"5b" 
["6a x"			"6b y"			]	; 6a x,6b y		; 6a x		6b y
["7a, x"			"7b,^"^" y"		]	; "7a, x","7b,"" y"""	; 7a, x		7b," y"

["^"8a ^"^",x"		"^"8b ^"^"^"^"y^""	]	; "8a "",x","8b """" y"	; 8a 
",x	8b "" y

["^"^"^"9a^"^" x"		"^"9b ^"^"y^"^"^""	]	; """9a"" x","9b ""y"""	; 
"9a" x	9b "y" 
]

 Out-block:	Mold-CSV In-block
 write %Book2.csv Out-block
____________

In the above, I have 3 "views" if you will of what I am after.

The first view is the In-block that I would like Mold-CSV to run 
against.

The second commented view is what I need Mold-CSV to generate to 
put into the csv file

The third commented view is what Microsoft Excel will generate when 
I open the CSV file.


Mold-CSV works fine for the first 6 lines, then it gives me this 
for lines 7,8 and 9:

7a, x
,{7b,"" y}		<-- Where did the braces come for for 7b?
{"8a "",x},"8b """"y"	<-- Same quest for 8a?

9a
 x
,"9b ""y"""	ok

Any ideas on how to solve this?
PatrickP61:
19-Jul-2007
Anton,  What do you think of this approach -- I'm just thinking it 
through and am not sure if I have covered all the bases.

Since my input can contain any number of symbols, commas, single 
and double quotes, and rarely, but possibly braces, what if I attack 
the problem a different way.  Whenever an embedded comma, or double 
quote or something like that occurs within an spreadsheet cell, it 
will require some kind of "extra" formatting like two quotes or the 
like.  It may even be that there are unique combinations of such 
symbols, rare as that would be, to have complex formatting of an 
input block for rebol to convert it properly for CSV.


What if I shift gears and look at a TAB delimited file instead.  
I know that I will never have TAB embedded in my cells, and that 
I deal with the entire block as a series instead.  I could embed 
TAB wherever needed to separate the columns and leave the remaining 
string the way it is.  Would that work, or would I still need to 
do some formatting to handle it.  I think I'll open an excel spreadsheet, 
and work in reverse to see what it needs for TAB delimited file. 
 Any comments?
RobertS:
31-Aug-2007
; I did a dif between the functions in VIEW and those in CORE for 
a default install.  What I get is this ( I hope it is useful to have 
al 106  in one place )

 alert  brightness?  caret-to-offset  center-face  choose  clear-face 
  clear-fields  confine  crypt-strength?

 dbug  deflag-face  desktop  dh-compute-key  dh-generate-key  dh-make-key 
  do-events  do-face  do-face-alt  do-thru  

 draw  dsa-generate-key  dsa-make-key  dsa-make-signature  dsa-verify-signature 
  dump-face  dump-pane  edge-size?  

 editor  emailer  exists-thru?  find-key-face  find-window  flag-face 
  flag-face?  flash  focus  get-face  

 get-net-info  get-style  hide  hide-popup  hilight-all  hilight-text 
  hsv-to-rgb  in-window?  inform  

 insert-event-func  inside?  install  launch-thru  layout  link-relative-path 
  load-image  load-stock  

 load-stock-block  load-thru  local-request-file  make-face  notify 
  offset-to-caret  open-events  outside?  

 overlap?  path-thru  read-net  read-thru  remove-event-func  request 
  request-color  request-date  request-dir  

 request-download  request-file  request-list  request-pass  request-text 
  reset-face  resize-face  rgb-to-hsv  

 rsa-encrypt  rsa-generate-key  rsa-make-key  screen-offset?  scroll-drag 
  scroll-face  scroll-para  set-face  

 set-font  set-para  set-style  set-user  show  show-popup  size-text 
  span?  stylize  textinfo  unfocus  

 uninstall  unlight-text  unview  vbug  view  viewed?  win-offset? 
  within?
SteveT:
12-Jan-2008
Perspectives of a newbie! By Steve Thornton (SteveT)


Hi! everyone, as someone brand new to REBOL I've been asked to log 
a journal
describing my experiences using REBOL. 


I think the first thing to get out of the way is to tell you where 
I'm coming

to REBOL from. I've programmed on and off for over twenty years starting 
with

Clipper 5 (dBaseII), Visual Basic (Access), C# (SQL Server), Java(NetBeans 
+

JavaDB). I've worked in a variety contract/freelance work. I earn 
approx half 

my income form 'Thornton Software' and I work for Iris Software Group 
- 

as a training consultant (training accountants :-\ someone has to 
do it!)


I can hear some of you saying 'Ahh! he's an IDE wimp - real men/women 
code

from scratch'. It was strange - every language I've used had an IDE 
and I

was a bit put off having to go find myself an editor. Until something 
better

find's me I'm using the freebie 'CREdit' as recommended by Sunanda. 


The easiest way to edit/test the scripts is to open an explorer window 
at

the side of the CREdit window showing my scripts folder. I can then 
drag a .r 

file onto the CEdit screen and it opens it. To run the script I double-click
it in the explorer window.


The help and documentation available is better than I have previously

experienced. Some of the components I've been wow'ed by so far is 
Henriks

List-View and RebDb from Dobeash. I've looked at RebGUI and for the 
time being 

I would prefer not to use anything on top of VID, I need to learn 
pure VID before
using anything else.


REBOL Cookbook of examples is a useful place to start. Some more 
form oriented 

examples would be cool. Example 014 - 'Open two windows'  and Example 
10 - 'Simple text
form window' are both useful


The Event Handling guide is a good resource for programmers moving 
from Visual
Studio etc..


That's more than enough to be going on with, next time I'll cover 
my experiences 
with VID, FACES and handling Events.

Bye for now.
Steve Thornton
mhinson:
7-May-2009
A question: if I want to provide a dialoge to navigate to a directory 
can I call up the ms windows file open & save dialogs, or do I have 
to do it all in rebol. I cant find any examples of this & dont have 
the skills to create my own...  I like the idea of having a GUI interface, 
but I may have to go back to command line if it is too hard for me 
:-)
Sunanda:
7-May-2009
File open dialog is simple.
  source request-file
:-)
DKnell:
21-Jun-2010
Graham, are you you using the xp rebol/view ? try the hellowworld.r 
 script in beginner,  left click the file, the script runs, but the 
cli/output window does not stay open.
alemar:
18-Jan-2011
>> do %/C/users/alemar/download/test.r

** Access error: cannot open: %/C/users/alemar/download/test.r reason: 
-3
** Where: read either read-decode case load -apply- do

** Near: read source if find system/options/file-types type [data: 
de...
todun:
8-Oct-2011
** Access Error: Cannot open file.txt
** Where: forever
** Near: were: read/lines %were-file.txt
Henrik:
8-Oct-2011
** Access Error: Cannot open file.txt
** Where: forever
** Near: were: read/lines %were-file.txt


That is possibly because file.txt does not exist and you are trying 
to read it somewhere near that line of code.
todun:
8-Oct-2011
@Henrik, I see. I will try to better trace the path the file takes 
to open. thanks.
Group: Make-doc ... moving forward [web-public]
shadwolf:
6-Apr-2005
Now next evolution of the rendering system mut be a fusion betwin 
the MDP raw format and the MDP to VID renderer.  In order to have 
on one panel that display the doc. Ths will lead me to write a multi 
file handler as we have only one panel for each open document. Save 
wil be made by default in .txt files and you still get the possibility 
to render HTML when you judge the document is publicable
Group: Parse ... Discussion of PARSE dialect [web-public]
Oldes:
30-Jul-2010
load-first-block2: func[file /local port buffer result tmp ][
	port: open/direct file
	buffer: copy ""
	result: none
	chunks: 0
	until [
		chunks: chunks + 1
		if any [
			chunks > 10
			none? tmp: copy/part port 512
		] [close port return none]
		insert tail buffer tmp
		not error? try [result: first load/next buffer]
	]
	close port
	result
]
Pekr:
31-Jul-2010
what about using something like open/seek at port ((size? file) - 
chunk-size) chunk-size?
Group: MySQL ... [web-public]
GrahamC:
22-Sep-2011
mysql problem what does this error mean?

    Hello,
    I am just looking at REBOL and trying to access mysql
    I got this error??
    ===================================
    connecting to: 127.0.0.1

    ** User Error: ERROR 1251 : Client does not support authentication 
    pro
    tocol requested by server; consider upgrading MySQL client
    ** Near: db: open mysql://[rootass-:-127-:-0-:-0-:-1]:3306/mysql
    ==============================================
    This the code I am using from rebol document
    Rebol[
    title: "Rebol Mini-Text Database with Visual GUI"

    author: "http://reboltutorial.com/blog/rebol-mini-text-database/"
    version: 1.0.0
    ]
    do %mysql-protocol.r
    probe first system/schemes
    db: open mysql://[rootass-:-127-:-0-:-0-:-1]:3306/mysql
    insert db {
    DROP TABLE IF EXISTS products;
    CREATE TABLE products (
    name VARCHAR(100),
    version DECIMAL(2, 2),
    released DATE
    );

    INSERT INTO products VALUES ('cheyenne', '1.0', '2007-05-31');
    INSERT INTO products VALUES ('mysql', '1.1', '2007-05-01');
    }
    insert db read %setup.sql ;-- execute a big SQL file
Group: Syllable ... The free desktop and server operating system family [web-public]
Graham:
20-Oct-2007
That was a short experiment.   I tried to open up the file in Ubuntu, 
and it said it was an unrecognized file type ( .7z ).
ddharing:
29-Aug-2010
Thanks. The only open source package missing for my current project 
is sqlite. I downloaded the SO binary from http://sqlite.org, but 
haven't tested it yet because I still need to purchase the REBOL/SDK 
for Linux. My Windows SDK license file doesn't work. :) As you know, 
REBOL/Core doesn't support library access.
Group: Linux ... [web-public] group for linux REBOL users
ManuM:
9-May-2009
Henrik: If you are talking about bug#779 I have added a comment at 
bug
http://curecode.org/rebol3/ticket.rsp?id=779&cursor=1
Something similar can be:
open-file-manager: funct [ dir ][ call reform [ "xdg-open" dir ]]
Ashley:
23-Jul-2009
OK, so I've downloaded Ubuntu 9.04 (64bit) and got it running under 
VirtualBox, then I download and untar/zip the REBOL SDK and open 
a console session. cd to the REBOL dir and do a chmod +x and type 
./rebview ... which comes back with a "file or dir not found message" 
... anything else I need to do to get REBOL working? Oh, and what 
font looked best with RebGUI in your opinion?
Andreas:
2-Apr-2010
Barik: replace browse with
browse: func [
    "Open web browser to a URL or local file"
    url [url! file!]
] [
    if file? url [url: to-local-file url]
    call join "xdg-open " probe url
]
Andreas:
2-Apr-2010
Ahem, maybe even without the probe :):
---
browse: func [
    "Open web browser to a URL or local file"
    url [url! file!]
] [
    if file? url [url: to-local-file url]
    call join "xdg-open " url
]
---
Janko:
19-Apr-2010
there is rebcmd.. when I run it it shows

/usr/share/cheyenne/rebol-sdk-276/tools/rebcmd: error while loading 
shared libraries: libstdc++.so.5: cannot open shared
 object file: No such file or directory

is rebcmd the "main" reb pro VM?
Graham:
29-May-2010
The file is in those debian packages ..but how to open a deb in Suse?
caelum:
31-Aug-2010
I have been playing with this for hours and have not made any progress 
after reading everything I could find about ports and ftp. Why does 
the following script not work?

    ftp-port: open [
        scheme: 'ftp 
        host: "ftp.mysite.org" 
        port-id: 21 
        user: "[user-:-mysite-:-org]" 
        pass: "xxxxxxxxxx"
    ] 
    write ftp-port "Test File" 
    close ftp-port

It gives the following error.


** Script Error: write expected destination argument of type: file 
url object block
** Where: func [face value]
Maxim:
1-Sep-2010
remote-spec:  [scheme: 'ftp  host: "ftp.mysite.org"  user: "[user-:-mysite-:-org]" 
 pass: "xxxxxxxxxx"]
local-file: %text.txt

source-port: open/binary/direct/read local-file ; BINARY mode
print "Attempting FTP connection..."


target-port: open/binary/direct/new/write remote-spec ; BINARY mode

insert target-port copy source-port

attempt [close target-port]
attempt [close source-port]
Group: Web ... Everything web development related [web-public]
Louis:
3-Mar-2005
If I try to open the downloaded file from my harddrive with Foxfire, 
I get an error message saying the file cannot be found!  But it is 
there and can be opened with my text editor.
Group: Announce ... Announcements only - use Ann-reply to chat [web-public]
shadwolf:
16-Sep-2005
New editor that support REBOL  colored syntax file. This sofware 
is SCITE 1.66 for linux and windows by default REBOL support is not 
activated. edit /usr/share/scite/ScitEGlobal.properties file ( MenuBar 
Options >  Open Global options File) search the line "#import rebol.porperties" 
and remove "#". Save changes (SCITE must be launched from a root 
terminal.) then edit /usr/src/rebol.properties file. Go to the last 
line of this file and set the proper path to your predered rebol 
VM version in the  command.go.($file.patterns.rebol)=....  Save the 
rebol.properties file ( this file can be located from Menubar Options>Edit 
properties>open rebol.properties). Once you make all those changes 
you are able to see rebol color syntax for your beloved rebol scripts.

the scripts are launched into the rebol VM hitting F5 key in SCITE. 
You will notice that the color syntaxe is very more advanced than 
the Crimson Editor one. And you have the  ability to hide the functions/objects 
inside code to make easier to read the script code.

Well this is the concret sign that REBOL  is being more and more 
considered in computing world. This is a good thing and a good reward 
for RT hard work.
Louis:
19-Sep-2006
rebol [
Title: "Stopwatch"
    Date: 23-Mar-2005
    Version: 1.0.0
    File: %stopwatch.r
    Author: "Louis Turk"
    Purpose: "Simple desktop stopwatch."
]
kbhit: does [
    con: open/direct/binary/no-wait console://
    until [wait con]
    choice: to-char pick con 1
    close con
    choice
]
forever [
	prin "Hit any key to start: "
	kbhit
	start-time: now/time/precise
	print [start-time]
	prin ["Hit any key to stop : "]
	kbhit
	end-time: now/time/precise
	print [end-time]
	print [newline newline end-time - start-time newline newline]
]
Louis:
19-Sep-2006
rebol [
Title: "Stopwatch"
    Date: 19-Sep-2006
    Version: 2.0.0
    File: %stopwatch.r
    Author: "Louis Turk"
    Purpose: "Simple desktop stopwatch."
    history: "v.2 works across midnight thanks to Gabriele"
]
kbhit: does [
    con: open/direct/binary/no-wait console://
    until [wait con]
    choice: to-char pick con 1
    close con
    choice
]
forever [
	prin "Hit any key to start: "
	kbhit
	start-time: now/precise
	print [start-time]
	prin ["Hit any key to stop : "]
	kbhit
	end-time: now/precise
	print [end-time]

 print [newline newline difference end-time start-time newline newline]
]
Louis:
11-Oct-2006
REBOL [
    Title:   "Slideshow"
    Date:    12-Oct-2006
    Name:    'SLIDESHOW  ; For window title bar
    Version: 1.0.0
    File:    %slideshow.r
    Author:  "Louis A. Turk"
    Rights:  "Public Domain; use at your own risk."
    Needs:   "A version of REBOL/VIEW supporting sound"

    Purpose: {To make possible simple, easy to make narrated slide shows.

              Hopefully can be used with the REBOL plugin to show narriated slides
              on a web site.

              Hopefully can an effective tool to teach REBOL programming.
    }
    Note: {
        The concept and design originated with Louis A. Turk.

        DideC helped considerably by answering programming questions and 
        giving bits of code;
        it would not have been possible without his help.
	Josh also answered programming questions.


        You can make wav files using the free program Audacity. http://audacity.sourceforge.net


        Advanced JEPG Compressor does and excellent job compressing graphics 
        files so they load 
        faster, but is not free.
    }
    History: [
        1.0.0 [ "First release." "Louis"]
    ]

    Language: 'English
]

;Requires a data file named %slides.r containing lines of blocks 
in the following format:

;Each block must contain: (1) slidename, (2) overlay, (3) caption, 
(4) sound.

;Example block: [%slide1.jpg "Overlay text." "A caption!" %sound.wav]
;Use "" for no overlay or caption.


;file: request-file/title/only "Select the slides data file to use." 
"Select Data File"

file: %slides.txt ;uncomment the above line, and comment this one 
to select data files with different names.
slides: load file
narrate: func [talk] [ ;--- Manage the sound
    sound-port: open sound://
    insert sound-port load talk
    wait sound-port
    close sound-port
]

view/new win: layout/size [] 650x650 ;<= Set the max size you need
wait 0  ;---Initialize REBOL's internal event handler.
foreach slide  slides [ ;--- Start the slide show
    set [graphic overlay caption narration] slide
    lay: layout [
        origin 0

        banner center bold red "A REBOL Produced Narriated Slide Show" 
        image graphic overlay 500x400 frame black [unview] [quit]
        text 500 bold caption
        button "Quit" center [quit]
    ]
    center-face/with lay win
    append clear win/pane lay
    show win
    narrate narration
]
do-events
Maxim:
21-Feb-2007
REMARK HAS NOW FINALLY BEEN RELEASED ON THE STEEL WEB SITE


REMARK is a robust web site building tool which allows you to construct 
your own custom tags using rebol values and dialecting.

The main difference of remark with other tools of its kind, is that 
the web pages do not contain code, they contain data or parameters 
to your custom tags.  Remark also persistently reparses tags until 
no more custom tags exist in the dialected tags you create. this 
means you can actually build up your pages with custom which use 
custom tags themselves... talk about leverage! 


at version 1.3.5 it support multiple site configs, ftp dumping, site 
specific configuration, and the very flexible remark engine itself. 


Creating tags is trivial and for simple templating, you don't even 
need to know how to code in rebol... just html content within stored 
files can be nested within your site's pages and will be included, 
by simply adding a tag which is called like the stored html.


Using differently named source file extensions you can even decide 
to parse the content differently, so that you can create different 
page templates or one can even decide to create a make-doc handler 
for example (its not included by default, just possible if you need 
it).


you can check-out the FULL documentation, including tutorial, example 
site, reference page and guides on adding new tags and templates. 


here: http://www.pointillistic.com/open-REBOL/moa/steel/retools/index.html
Chris:
21-Apr-2007
Introducing QuarterMaster: Yet Another Web Framework that I'm probably 
going to have to take time to document properly: http://www.ross-gill.com/QM/


In short, it is designed around the MVC pattern.  It is open source 
(license tbd).  Tries to be lightweight, but could use some work. 
 Tries to be as thin a wrapper to Rebol (/Core, /Base, whatever) 
while providing key functions for creating web sites/applications. 
 Includes a flat-file dbms out the box, which generally works.  Currently 
coded to work with Apache (needs mod-rewrite and 'request-uri' env 
variable), but should eventually be httpd agnostic.  Please try, 
please test.  I will answer all and every question (within reason). 
 All suggestions considered with an open mind...

Group: !QM
Maxim:
2-Oct-2010
RENOTE beta.  :-)

Just for Reichart.


here is a zip file: http://www.pointillistic.com/open-REBOL/moa/files/renote.zip


just unpack and run Renote.r  using rebol 2.7.7 (might work with 
earlier versions... untested)
Maxim:
4-Oct-2010
Renote v0.9.2


Adds many little improvement, bug fixes, and you can now export the 
whole view into an ascii file.
Filtering is much improved (its interactive everywhere)

same download url

pics:
http://www.pointillistic.com/open-REBOL/moa/files/renote-1.png
http://www.pointillistic.com/open-REBOL/moa/files/renote-2.png
http://www.pointillistic.com/open-REBOL/moa/files/renote-3.png
http://www.pointillistic.com/open-REBOL/moa/files/renote-4.png
http://www.pointillistic.com/open-REBOL/moa/files/renote-5.png
Group: SDK ... [web-public]
BrianH:
27-Jun-2006
Well, it's nice that they are semi-supported through a filename hack 
that is actually in the underlying APIs that REBOL calls internally, 
but it is not supported through the actual mechanism REBOL uses for 
supporting that kind of thing on other platforms, and so is not portable.


Try get-modes %file 'forks or the /custom refinement to open, read 
or write with the [fork "forkname"] parameter. On platforms other 
than Mac there is generally only one fork ("data") but if the code 
you write is fork-aware it will be portable. This is the method that 
REBOL should be using to support streams on NTFS or any equivalent 
feature on other OSes' file systems.
Pekr:
1-Aug-2006
What does this mean, please? I just tried to upgrade to latest SDK, 
as I use Command on my Linux Fedora Core 1, and older Rebol does 
not know 'unless (which is used in sqlite.r driver). But I got following 
error:


./rebcmd: error while loading shared libraries: libstdc++-libc6.2-2.so.3: 
cannot open shared object file: No such file or directory
Maarten:
11-Nov-2007
/rebcmd: error while loading shared libraries: libstdc++-libc6.2-2.so.3: 
cannot open shared object file
Rondon:
14-Jan-2012
REBOL [
Title: "ARCFOUR and CipherSaber"
Date: 17-Jan-2004
File: %arcfour.r
Author: "Cal Dixon"

Purpose: {Provides encryption and decryption using the ARCFOUR algorithm}

Note: {this implementation can decrypt data at about 40KB/s on my 
1Ghz AMD Duron system with Rebol/View 1.2.10.3.1}
Library: [
level: 'advanced
platform: 'all
type: [function module protocol]
domain: [encryption scheme]
tested-under: [view 1.2.10.3.1 on [W2K] by "Cal"]
license: 'PD
support: none
]
]


;ARCFOUR specification: http://www.mozilla.org/projects/security/pki/nss/draft-kaukonen-cipher-arcfour-03.txt

;CipherSabre specification: http://ciphersaber.gurus.com/faq.html#getrc4


arcfour-short: func [key [string! binary!] stream [binary! string!] 
/mix n /local state i j output swap addmod sz][

swap: func [a b s /local][ local: sz s a poke s a + 1 to-char sz 
s b poke s b + 1 to-char local ]
addmod: func [ a b ][ a + b // 256 ]
sz: func [ s a ][ pick s a + 1 ]

state: make binary! 256 repeat var 256 [ insert tail state to-char 
var - 1 ]

j: 0 loop any [ n 1 ] [ i: 0 loop 256 [ swap i j: addmod j add sz 
state i sz key i // length? key state i: i + 1] ]
i: j: 0 output: make binary! length? stream
repeat byte stream [
swap i: addmod i 1 j: addmod j sz state i state

insert tail output to-char xor~ byte to-char sz state addmod (sz 
state i) (sz state j)
]
clear state
return output
] 

make root-protocol [
addmod: addmod: func [ a b ][ a + b // 256 ]
sz: func [ s a ][ pick s a + 1 ]

swap: func [a b s /local][ local: sz s a poke s a + 1 to-char sz 
s b poke s b + 1 to-char local ]
ins: get in system/words 'insert
i: 0 j: 0
open: func [port][
port/state/tail: 2000
port/state/index: 0
port/state/flags: port/state/flags or port-flags

port/locals: context [ inbuffer: make binary! 40000 state: make binary! 
256]
use [key n i j] [
key: port/key
n: port/strength
repeat var 256 [ ins tail port/locals/state to-char var - 1 ]
j: 0 loop any [ n 1 ] [
i: 0 loop 256 [

swap i j: addmod j add sz port/locals/state i sz key i // length? 
key port/locals/state i: i + 1
]
]
]
i: j: 0
]
insert: func [port data][
system/words/insert tail port/locals/inbuffer data do []
]
copy: func [port /local output][
output: make binary! local: length? port/locals/inbuffer
loop local [

swap i: addmod i 1 j: addmod j sz port/locals/state i port/locals/state

ins tail output to-char sz port/locals/state addmod (sz port/locals/state 
i) (sz port/locals/state j)
]
local: xor~ output port/locals/inbuffer
clear port/locals/inbuffer
local
]

close: func [port][ clear port/locals/inbuffer clear port/locals/state 
clear port/url clear port/key]
port-flags: system/standard/port-flags/pass-thru
net-utils/net-install arcfour self 0
]

arcfour: func [key stream /mix n /local port][
port: open compose [scheme: 'arcfour key: (key) strength: (n)]
insert port stream
local: copy port
close port
return local
]


; CipherSaber is an ARCFOUR stream prepended with 10 bytes of random 
key data
ciphersaber: func [ key stream /v2 n ][

arcfour/mix join key copy/part stream 10 skip stream 10 either v2 
[ any [ n 42 ] ][ 1 ]
]
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Ashley:
20-Sep-2005
Latest build available at: http://www.dobeash.com/files/RebGUI-037.zip

Issue log: http://www.dobeash.com/it/rebgui/issues.html


*** Unzip this file into your existing RebGUI 0.3.0 distribution. 
Requires View 1.3.1 ***

Highlights include:

	- Close handler refinement added to display function

 - Closing the main window when more than one is open now prompts 
 for confirmation

 - New 'after keyword added to layout (helps with displays that arrange 
 widgets in one or more columns)

 - Fixed major bugs with 'at positioning and window size determination
	- Couple of layout 'reverse bugs fixed
	- Documentation updated to reflect above changes
	- Number of minor bug fixes

In the works

	- revamped focus system
	- basic menu widget
	- context menu widget
	- field-level validation
	- stabilize existing code-base for 0.4.0 beta release
Ashley:
7-Dec-2005
Latest build available at: http://www.dobeash.com/files/RebGUI-038.zip

Issue log: http://www.dobeash.com/it/rebgui/issues.html


*** Unzip this file into your existing RebGUI 0.3.0 distribution. 
Requires View 1.3.1 (1.3.2 preferred) ***


This is mainly a bug-fix release with a new prototype event trigger 
system (see %"Demo - actions.r") and a very early proof of concept 
bubble-menu (see %"Demo - bubble-menu.r").


I'm particularly keen to see whether the event trigger system is 
flexible enough to remove [or reduce] the need for a dedicated (and 
hard to design / implement) one-size-fits-all "field validation" 
system as discussed previously. The bubble-menu demo shows how transparency 
and event detection within a non-square area *could* be done. The 
implementation is not perfect (or anywhere near usable) so I'm open 
to alternate design suggestions! ;)
Pekr:
2-Jan-2006
anton, what is the problem with checksum? It depends on syncing strategy, 
but you have those files on both side (client, server) anyway. afaik, 
the problem with checksum could be its speed. But since we have open/seek, 
we could do checksumming defined,e.g. 3 parts of files, first xy 
bytes, last xy bytes and defined skip somewhere to the middle of 
the file ... dunno if it would work though :-)
Robert:
16-Apr-2006
Here is a short example when it fails:
rebol []

;--- Startup
if system/product == 'Link [

 attempt [call reduce ["d:\rebol\view\rebol.exe" system/script/header/file] 
 quit]

 attempt [call reduce ["c:\programme\rebol\view\rebview.exe" system/script/header/file] 
 quit]

 attempt [call reduce ["c:\rebol\view\rebol.exe" system/script/header/file] 
 quit]
	quit
]

;-- use xpeers framework structure
link-root: first split-path system/script/path
link-root: copy/part link-root index? find link-root "/xpeers/"
append link-root %xpeers/
do link-root/framework/anamonitor300.r
do link-root/framework/slim.r

;-- RebGUI stuff

#include %rebgui.r unless value? 'ctx-rebgui [do link-root/framework/libraries/rebgui.r]

;-- SLIM stuff
slim/open 'debug none ; [mark-my-words]
; mark-my-words/init

unit-size: 4
font-size: 12
tab-size: 120x55

display/min-size "CalcIT" compose/deep [
	label "Land"
	drop-list 60 data ["A" "B"] return
] 1024x768
do-events
halt
Group: DevCon2005 ... DevCon 2005 [web-public]
Luca:
5-Oct-2005
I thougth that they open client connections to download files while 
keep an open server port to let others download from its. it  would 
be interesting to understand how a client that share a file open 
a client connection. I mean where it connects to.
Group: Rebol School ... Rebol School [web-public]
PatrickP61:
28-Apr-2009
I need a little help to figure something out.

I have been using R3 for some time and I have a small mystery I can't 
figure out.

Some time ago, I created a script called REBOL.r3a which simply invoked 
the r3-curr.exe file (which is currently a copy of the r3-a49.exe 
that was just released).
This script was simply defined a path for the T variable:
t:	does [do %test.r]

my purpose was to simply type the letter T to invoke the test.r script 
as a quick way of running it while I had the test.r script open in 
an editor on a separate window.
Claude:
1-Jun-2010
REBOL[]


send: func [
	"Send a message to an address (or block of addresses)"
	;Note - will also be used with REBOL protocol later.
	address [email! block!] "An address or block of addresses"
	message "Text of message. First line is subject."
	/only   "Send only one message to multiple addresses"
	/header "Supply your own custom header"
	header-obj [object!] "The header to use"
	/attach "Attach file, files, or [.. [filename data]]"
	files [file! block!] "The files to attach to the message"
	/subject "Set the subject of the message"
	subj "The subject line"
	/show "Show all recipients in the TO field"
	/local smtp-port boundary make-boundary tmp from
][
	make-boundary: does []

	if file? files [files: reduce [files]] ; make it a block
	if email? address [address: reduce [address]] ; make it a block
	message: either string? message [copy message] [mold message]

	if not header [                 ; Clone system default header
		header-obj: make system/standard/email [

   subject: any [subj copy/part message any [find message newline 50]]
		]
	]
	if subject [header-obj/subject: subj]
	either none? header-obj/from [

  if none? header-obj/from: from: system/user/email [net-error "Email 
  header not set: no from address"]
		if all [string? system/user/name not empty? system/user/name][
			header-obj/from: rejoin [system/user/name " <" from ">"]
		]
	][
		from: header-obj/from
	]
	if none? header-obj/to [
		header-obj/to: tmp: make string! 20
		if show [
			foreach email address [repend tmp [email ", "]]
			clear back back tail tmp
		]
	]
	if none? header-obj/date [header-obj/date: to-idate now]

	if attach [

  boundary: rejoin ["--__REBOL--" system/product "--" system/version 
  "--" checksum form now/precise "__"]
		header-obj/MIME-Version: "1.0"

  header-obj/content-type: join "multipart/mixed; boundary=" [{"} skip 
  boundary 2 {"}]
		message: build-attach-body message files boundary
	]

	;-- Send as an SMTP batch or individually addressed:
	smtp-port: open [scheme: 'esmtp]
	either only [ ; Only one message to multiple addrs
		address: copy address
		; remove non-email values
		remove-each value address [not email? :value]

  message: head insert insert tail net-utils/export header-obj newline 
  message
		insert smtp-port reduce [from address message]
	] [
		foreach addr address [
			if email? addr [
				if not show [insert clear header-obj/to addr]

    tmp: head insert insert tail net-utils/export header-obj newline 
    message
				insert smtp-port reduce [from reduce [addr] tmp]
			]
		]
	]
	close smtp-port
]

resend: func [
	"Relay a message"
	to from message /local smtp-port
][
	smtp-port: open [scheme: 'esmtp]
	insert smtp-port reduce [from reduce [to] message]
	close smtp-port
]

build-attach-body: function [
	{Return an email body with attached files.}
	body [string!] {The message body}

 files [block!] {List of files to send [%file1.r [%file2.r "data"]]}
	boundary [string!] {The boundary divider}
][
	make-mime-header
	break-lines
	file
	val
][
	make-mime-header: func [file] [
		net-utils/export context [

   Content-Type: join {application/octet-stream; name="} [file {"}]
			Content-Transfer-Encoding: "base64"

   Content-Disposition: join {attachment; filename="} [file {"^/}]
		]
	]
	break-lines: func [mesg data /at num] [
		num: any [num 72]
		while [not tail? data] [
			append mesg join copy/part data num #"^/"
			data: skip data num
		]
		mesg
	]
	if not empty? files [
		insert body reduce [boundary "^/Content-type: text/html^/^/"]
		append body "^/^/"
		if not parse files [
			some [
				(file: none)
				[
					set file file! (val: read/binary file)
					| into [
						set file file!
						set val skip ;anything allowed
						to end
					]
				] (
					if file [
						repend body [
							boundary "^/"
							make-mime-header any [find/last/tail file #"/" file]
						]
						val: either any-string? val [val] [mold :val]
						break-lines body enbase val
					]
				)
			]
		] [net-error "Cannot parse file list."]
		append body join boundary "--^/"
	]
	body
]
Group: Tech News ... Interesting technology [web-public]
onetom:
30-Aug-2011
a little lighter topic:  http://www.sublimetext.com/2

the best generic code editor ever and it's CROSS PLATFORM since the 
beginning of the year and it's beta already!

im using it for a day and no bugs so far. it costs 60 USD to get 
rid of the "buy me" dialog after every 50th save, but that's the 
only pain point, i think.

here is the list why i love it:
- knows save on focus lost

- have the intelligent filename search (with instant file preview!!!)
- can open full folders
(no need to create a project for it explicitely!!!...)
- handles proportional fonts
- handles double width characters (chinese for example)
- beautiful default color scheme with black background
- distraction free "zen" mode
- no stupid dialog box config
- cross platform; which is good because

    - i can remote control less advanced users no matter what is their 
    platform

    - i can use the same interface and shortcuts on every platform; no 
    annoyance on switching
- not extremely bloated yet...
Group: !REBOL3-OLD1 ... [web-public]
Anton:
11-Apr-2006
net-utils/net-log join "Type: " type: any [
	    all [new-dir? 'new-dir] 
	    all [new? 'new] 
	    all [dir-read? port 'dir] 

     all [port/state/flags and system/standard/port-flags/open-append 
     <> 0 'app] 
	    'file
	] 
	do select [
	    file [

  confirm-cmd port either port/algorithm = 'nlst [nlst-check] [list-check] 
		accept-connect port type 
		parse-dir-list port 
		if tmp: select locals/dir-cache to-file port/target [
		    port/status: first tmp 
		    port/date: third tmp 

      if any [none? port/size: second tmp 1024 > port/size] [port/size: 
      0]
		] 
		data-connect port 
		confirm-cmd port binary-type-check 
		if 0 < cmd-port/state/index: port/state/index [
		    confirm-cmd port restart-check
		] 
		confirm-cmd port read-check
	    ] 
	    new [confirm-cmd port write-check] 
	    new-dir [confirm-cmd port mkdir-check] 

     dir [confirm-cmd port either port/algorithm = 'nlst [nlst-check] 
     [list-check]] 
	    app [confirm-cmd port append-check]
	] type 
	accept-connect port type 
	if type = 'dir [
	    port/size: port/state/tail: parse-dir-list port
	]
    ] 
    port
]
close: func [port /local cmd-port cache-size][
    cmd-port: port/locals/cmd-port 
    if not dir-read? port [error-try? [confirm-transfer port]] 

    net-utils/net-log reform ["Caching cmd-port" cmd-port/host cmd-port/local-port 
    cmd-port/remote-port] 
    cmd-port/host: cmd-port/locals/tuple
Chris:
27-May-2007
It's a shame that menus have to be reinvented -- every system View 
runs on has a menu structure built in, and I'd rather use that than 
rolling our own.  Especially on OS X.  Our interface could be eg. 
a dialect attached to a window containing features common in menu 
systems: view/menu layout [...]["File" ["New" ["Document" "Template"] 
"Open" ctrl #"O" (does this) "Open Recent" get-recent-docs]]
Geomol:
13-Aug-2007
Some more output from the R3 console:

>> length? system/words
== 1296

>> ? system/datatypes

SYSTEM/DATATYPES is a block of value: [end! unset! none! logic! integer! 
decimal

! percent! money! char! pair! tuple! time! date! string! binary! 
file! email! ur

l! tag! issue! bitset! unicode! vector! image! block! paren! path! 
set-path! get

-path! lit-path! dictionary! datatype! typeset! word! set-word! get-word! 
lit-wo

rd! refinement! native! action! routine! rebcode! op! closure! function! 
frame!

object! module! error! task! port! gob! event! handle! struct! library! 
utype!]

>> ? system/view/event-types
SYSTEM/VIEW/EVENT-TYPES is a block of value: [

    ignore interrupt device custom error init open close connect accept 
    read write wrote lookup ready done time show hide offset resize active 
    inactive minimize maximize restore move down up alt-down alt-up aux-down 
    aux-up key key-up scroll-line scroll-page drop-file
]
Group: !Cheyenne ... Discussions about the Cheyenne Web Server [web-public]
Terry:
27-Oct-2007
Worked out the other issue.. Flash requires crossdomain.xml file 
to be delivered up by Cheyenne when running Flash that uses xml.Socket 
(like RASH).
Butt it's working well now.. and very cool. 

Works like this.. I run my local copy of Framewerks with embedded 
Cheyenne server, and park the GUI on any server (always accessible, 
single point of bug fixing etc.) for all to use.. currently it's 
here  http://kommonwealth.com/exper/gui.html


Now, it wont work for you 'cuz you're not running framewerks.. but 
if you were..  you could type into the box "codes" and it would open 
the RASH code file, on your desktop, using your favorite text editor. 
  

But wait.. there's more... 

In my local code.txt file i have the following line

PnG "testing" ][bout: {<pre>ok this works</pre>} makeXML ['DISPLAY 
'MSG "testing works here"]]


So when I open another browser, and point it to http://localhost/
testing  that line is fired (more on all this later).. 

Which does two things.. it outputs "ok this woks" to this second 
localhost page .. BUT (and this is the cool part)

it sends the "testing works here" into the panel on the first kommonwealth 
page. 

In other words, Im able to PUSH data to the remote page at ANY TIME.. 
  this will make for the ultimate in portal pages. 

And.. if that's not enough, Im able to pass messages to the DOM via 
javascript to the kommonwealth page as well. 

Allowing things like sliding in panels.. fading div elements moving 
images.. whatever.


So.. remote page can manipulate my computer.. run apps, do any Rebol, 
reboot .. whatever.. and the local desktop can manipulate a remote 
web page.

Finally.
Dockimbel:
20-Dec-2007
HOW-TO make Cheyenne work with PHP for non-Windows OS


The purpose of the following patch is to make FastCGI in PHP work 
the same on all OSes.


1) If you have PHP v5.2.1 or higher with sources, you can skip 2) 
& 3) else :

2) Download latest PHP sources from http://www.php.net/downloads.php
3) Untar the archive anywhere yo want
4) Go to PHP install folder
5) Patching PHP source :

	Open a REBOL console, then :

;---- cut'n paste the following code in REBOL's console ----

patch-php: has [buffer pos][
	target: %sapi/cgi/fastcgi.c
	if none? attempt [buffer: read target][
		print "unable to find the file to patch!!"
		exit
	]
	either parse buffer [
		thru "int fcgi_accept_request("
		to "if (req->fd >= 0) {"
		pos: to end
	][
		insert pos "^/^-^-^-^-break;^/^-^-^-^-"
		write target buffer
		print "patch applied."
	][
		print "failed to locate the line to patch!!"
	]
]

patch-php
;---- end of code ----
		
6) Once the patch is applied :

	> ./configure --enable-fastcgi
	> make
	> sudo make install
	
7) Check if everything is ok :

	> php-cgi -h
	...
	you should see a -b option listed meaning you got proper
	FastCGI support.
	
	If it fails (occured on OSX), try with a full path instead :
	
	> /usr/local/bin/php-cgi -h
	

8) Edit Cheyenne's config file (httpd.cfg) to set the correct option 
in the PHP section. Non-Windows users have to also set the new 'delay 
option.
Dockimbel:
13-May-2008
Hi guys, there's a tiny issue with Cheyenne running on 2.7.6 due 
to a bug fixed in EXTRACT. To fix it just open %HTTPd.r file and 
find the  following line :
Henrik:
16-Oct-2008
Error 500
Access Error
Cannot open <my file here>
Near do %../../html.r
Where: protected-exec
Endo:
7-May-2009
I used a file monitor and found the reason, it tries to load mcvcrt7.dll 
(visual c 7 runtime dll)  can't find it and gives error with "can't 
open service.dll"
Dockimbel:
21-May-2009
Having the TCP/IP part open-sourced in R3 will be great. It will 
allow to use much faster OS hooks for file transfers, extend the 
port! API to bind only on selected interfaces, etc...I wonder if 
the main event loop will be there also, so we can replace the not-scalable 
Select( ) call by other faster ones or even integrate libevent. That 
would definitely make Cheyenne able to handle a much higher number 
of connections.
Group: DevCon2007 ... DevCon 2007 [web-public]
Cyphre:
16-Jun-2007
foreach file [
	%01_opening1.mov
	%02_opening2.mov
	%03_carl1_1.mov
	%04_Carl1_2.mov
	%05_Francois.mov
	%06_Maxim1.mov
	%07_Carl2.mov
	%08_Ladislav.mov
	%09_Sunanda.mov
	%10_Carl3.mov
	%11_Reichart.mov
	%12_Maxim2.mov
	%13_Ron.mov
	%14_Nicolas.mov
	%15_Concluding.mov
] [
	if error? try [ 

  in: open/direct/binary join http://ead.ephe.sorbonne.fr:81/R7/ file
		out: open/new/direct/binary/write file

  len: to-integer (to-integer in/locals/headers/content-length) / 1024
		siz: 0
		chunk: 4096
		print ""
		while [data: copy/part in chunk][
			siz: siz + length? data

   print ["^(1B)[Awriting file:" file to-integer siz / 1024 "KB of" 
   len "KB..." ]
			insert tail out data
		]
		close in
		close out
		in: out: none
	][

  print ["ERROR during transfer of" join http://ead.ephe.sorbonne.fr:81/R7/ 
  file] 
	]
]
Group: !CureCode ... web-based bugtracking tool [web-public]
Henrik:
30-Aug-2009
BTW, I spotted another error with the captcha:

URL  = /bugs/captcha.rsp
        File = /home/henrikmk/serve/www/bugs/captcha.rsp

        ** Access Error : Port none not open
        ** Where: confirm
        ** Near:  [save/png img: make binary! 25000]


At that time I noticed the image was not displayed in the browser, 
but it only happened once.
101 / 2971[2] 3